package com.tanhua.dubbo.api;

import com.tanhua.dubbo.pojo.Video;
import com.tanhua.dubbo.vo.PageInfo;
import org.bson.types.ObjectId;

public interface VideoApi {

    /**
     * 保存小视频
     *
     * @param video
     * @return 保存成功后，返回视频id
     */
    String saveVideo(Video video);

    /**
     * 分页查询小视频列表，按照时间倒序排序
     *
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<Video> queryVideoList(Long userId, Integer page, Integer pageSize);

    /**
     * 根据视频id查询视频数据
     *
     * @param videoId
     * @return
     */
    Video queryVideoById(String videoId);

    /**
     * 查询评论数
     * @return
     */
    Integer queryCommentCount(ObjectId objectId);

    /**
     * 查询点赞数
     *
     * @param videoId
     * @return
     */
    Long queryLikeCount(String videoId);

    /**
     * 关注用户
     * @param uid
     * @return
     */
    Boolean userFocus(String userId, String uid);

    /**
     * 取消关注
     * @param userId
     * @param uid
     * @return
     */
    Object userUnFocus(String userId, String uid);

    /**
     * 查询用户是否点赞该动态
     *
     * @param userId
     * @param videoId
     * @return
     */
    Boolean queryUserIsLike(Long userId, String videoId);

    /**
     * 查询是否关注
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean queryUserIsFocus(Long userId, Long likeUserId);
}
